跳到主要内容

表现

表现说明见表现, 实际上服务器也是通过rpc调用客户端的表现api, 所以和客户端api基本一致。

base.actor

创建表现

  • 参数
    • name (string) - ActorData中声明的表现名
    • exclude (table) - 哪些玩家不需要创建表现, 比如2表示玩家1,2客户端不需要创建表现, 不填默认为
    • sync (boolean) - attach_to单位后是否跟单位同步(即跟单位一起在视野出现或消失), 默认为true。典型应用场景是ForceOneShot=1的模型表现,如果sync=true,单位再次出现再视野的时候会播stand、death动画然后销毁;如果sync=false,单位再次出现在视野里时,表现不会出现。
  • 返回
    • actor (actor) - 表现
local actor = base.actor(name, {1,2}, false)

destroy

销毁表现

  • 参数
    • force (bool) - 不填默认为false,
      • 对ModelActor,true表示不播放death动画,直接销毁。
      • 对SoundActor, false表示当前Sound立刻开始按照ActorSoundData里FadeTime淡出,淡出后销毁actor
actor:destroy(true)

set_owner

设置表现所属玩家,影响该表现对于不同玩家的可见性

  • 参数
    • owner_id (number) - 玩家的slot_id
actor:set_owner(owner_id)

set_asset

动态替换表现的资源,比如模型表现换模型,音效表现换音效,特效表现换特效

  • 参数
    • asset (string) - [ActorModelData]或者[ActorSoundData]中的资源名
actor:set_asset(asset)

set_shadow

仅对拥有CEAnimatedModel的模型表现生效,显示或隐藏阴影

  • 参数
    • enable (boolean) - 是否显示阴影
actor:set_shadow(false)

set_position

设置表现在场景中的位置, attach之后,设置表现相对于父节点的偏移

  • 参数
    • x (number)
    • y (number)
    • z (number)

或者

  • 参数
    • point (point)
actor:set_position(x, y, z)
actor:set_position(base.point(x, y, z))

set_ground_z

设置表现在场景中的相对于地面的高度,一次性设置。 set_position和set_ground_z后调用的覆盖先调用的。 对于attach到其他单位/表现的表现不生效。

  • 参数
    • z (number)
actor:set_ground_z(z)

set_rotation

设置表现在场景中的朝向

  • 参数
    • x (number) - 欧拉角pitch, 绕x轴旋转值
    • y (number) - 欧拉角yaw, 绕y轴旋转值
    • z (number) - 欧拉角roll, 绕z轴旋转值
actor:set_rotation(x, y, z)

set_facing

设置表现在场景中的平面内朝向(为了兼容旧地图保留的)

  • 参数
    • facing (number) - 等价于欧拉角roll, 绕z轴旋转值
actor:set_facing(90)
-- 等价于actor:set_rotation(0, 0, 90)

set_scale

设置表现在场景中的比例大小

  • 参数
    • x (number) - 三个维度的比例大小均为x
actor:set_scale(x)

attach_to

将表现附着在别的表现或者单位上

  • 参数
    • target (unit/actor/number) - 可以是单位/表现/actor_id/unit_id
    • socket (string) - 可以不填,或者填target上的socket名字
actor:attach_to(target, socket)

play

播放音效/特效,当前支持音效/特效表现

actor:play()

play_animation

模型特效播放动画

  • 参数
    • anim (string) - 模型表现Asset路径下的某个动画文件名,不带.ani
    • params (table) - 通过表传播放参数,可以不填,当前支持loop(默认false), speed(默认1.0)
actor:play_animation('Crawl', {loop=true, speed=1.0})

stop

停止音效/特效,当前支持音效/特效表现 如果是模型表现,则表示停止通过play_animation播放的动画,开始播放stand动画。如果当前没有播放通过play_animation播放的动画。则没有效果。

actor:stop()

pause

暂停音效,当前只支持音效表现

actor:pause()

resume

继续播音效,当前只支持音效表现

actor:resume()

set_volume

设置音量,当前只支持音效表现

  • 参数
    • volume (number) - 音量
actor:set_volume(volume)

base.actor_info

获取当前所有的id到actor映射表

  • actor_map
    • 服务器通知创建的server_actor_id到actor的映射表
    • 服务器创建api会先生成一个s_id(负数), 然后通知客户端api创建一个actor,服务器维护s_id到actor的映射在actor_map里
local actor_map = base.actor_info().actor_map
local actor1 = actor_map[-2] --actor id均为负数